package com.huitu.whht.base.core.api.wrem.event;

import com.huitu.api.rest.AbstractApiResource;
import com.huitu.commons.PageUtils;
import com.huitu.whht.api.core.common.response.ApiResultBuilder;
import com.huitu.whht.api.core.common.annotations.SzyCoreApiResource;
import com.huitu.whht.api.core.common.annotations.SzyCoreApiService;
import com.huitu.whht.api.core.common.response.StatusRespBuilder;

import com.huitu.whht.base.core.api.wrem.event.entities.WremEventB;

import com.huitu.whht.base.core.api.wrem.event.entities.WremEventBQo;
import com.huitu.whht.base.core.api.wrem.event.service.IWremEventBService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

/**
 * 说明: 应急事件基本信息表API,表名称: T_WHHT_WREM_EVENT_B <br/>
 * 日期: 2019-04-11
 * @author LiuCW
 */
@Component
@SzyCoreApiResource
@Path("generate/event/b")
public class WremEventBResource extends AbstractApiResource {

    private static final Logger LOGGER = LoggerFactory.getLogger(WremEventBResource.class);

    private static final String UUID = "db1c6c55-bc7d-4a5e-986b-f40dfbff4028";

    @Override
    public String getUUID() {
        return UUID;
    }

    @Autowired
    @SzyCoreApiService
    IWremEventBService wremEventBService;

    /**
     * @api {get} generate/event/b/{eventId} [R][G]根据主键查询
     * @apiDescription [G]根据主键查询T_WHHT_WREM_EVENT_B(应急事件基本信息表)数据
     * @apiName (generate)select by primary key
     * @apiGroup WREM_EVENT_B-应急事件基本信息表
     * @apiVersion 1.0.0
     * @apiSampleRequest generate/event/b/5864626a-71f1-40bd-ad14-c480f4654395
     * @apiParam   {String}         eventId            【必须】应急事件代码
     * @apiSuccess {String}         eventId            应急事件代码
     * @apiSuccess {String}         eventNm            应急事件名称
     * @apiSuccess {String}         eventG             应急事件级别
     * @apiSuccess {String}         eventTp            应急事件类型
     * @apiSuccess {String}         reportTp           事件上报方式(1.自动上报;2.人工上报)
     * @apiSuccess {String}         reportPersonNm     上报人员姓名
     * @apiSuccess {String}         reportPersonTel    上报人员电话
     * @apiSuccess {String}         adCd               事发行政区划代码
     * @apiSuccess {String}         orgNm              上报人所属单位名称
     * @apiSuccess {String}         eventAddr          事件发生地址
     * @apiSuccess {String}         lgtd               经度
     * @apiSuccess {String}         lttd               纬度
     * @apiSuccess {String}         mainChem           主要化学污染物
     * @apiSuccess {String}         eventCurrentStatus 事件当前状态(1.创建;2.已确认;3.加入会商;4.已会商|调度中;5.事件结束;8.审核未通过.9.事件取消)
     * @apiSuccess {Date}           occuTm             事件发生时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccess {Date}           discoveryTm        事件上报时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccess {String}         eventDesc          事件描述
     * @apiSuccess {String}         eventPreDispo      事件先期处置
     * @apiSuccess {String}         sysUserId          系统用户代码
     * @apiSuccess {Date}           createTm           创建时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccess {Date}           modifyTm           修改时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccess {Date}           ts                 时间戳(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccessExample 请求成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "eventId": "5864626a-71f1-40bd-ad14-c480f4654395",
     * "eventNm": "111111",
     * "eventG": "9",
     * "eventTp": "9",
     * "reportTp": "2",
     * "reportPersonNm": null,
     * "reportPersonTel": null,
     * "adCd": "420800",
     * "orgNm": null,
     * "eventAddr": "邹家窝西南约529米",
     * "lgtd": "112.719727",
     * "lttd": "30.882568",
     * "mainChem": null,
     * "eventCurrentStatus": "2",
     * "occuTm": "2019-01-03 19:13:54.0",
     * "discoveryTm": "2019-01-03 19:13:54.0",
     * "eventDesc": null,
     * "eventPreDispo": null,
     * "sysUserId": null,
     * "createTm": null,
     * "modifyTm": null,
     * "ts": "2019-04-08 14:52:43.0"
     *  }
     * }
     * @apiUse exceptions
     */
    @GET
    @Path("{eventId}")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response selectByPrimaryKey(@PathParam("eventId") String eventId) {
        LOGGER.info("根据主键查询 应急事件基本信息表,参数 eventId:{}", eventId);
        return Response.ok(ApiResultBuilder.create(this, wremEventBService.selectByPrimaryKey(eventId))).build();
    }

    /**
     * @api {post} generate/event/b/list [R][G]根据条件查询
     * @apiDescription [G]根据条件查询T_WHHT_WREM_EVENT_B(应急事件基本信息表)数据
     * @apiName (generate)select by filter
     * @apiGroup WREM_EVENT_B-应急事件基本信息表
     * @apiVersion 1.0.0
     * @apiSampleRequest generate/event/b/list
     * @apiParam   {List(String)}   eventIdList        (数组)应急事件代码
     * @apiParam   {String}         eventId            应急事件代码
     * @apiParam   {String}         eventNm            应急事件名称
     * @apiParam   {List(String)}   eventGList         (数组)应急事件级别
     * @apiParam   {List(String)}   eventTpList        (数组)应急事件类型
     * @apiParam   {List(String)}   reportTpList       (数组)事件上报方式(1.自动上报;2.人工上报)
     * @apiParam   {String}         reportPersonNm     上报人员姓名
     * @apiParam   {String}         reportPersonTel    上报人员电话
     * @apiParam   {List(String)}   adCdList           (数组)事发行政区划代码
     * @apiParam   {String}         adCd               事发行政区划代码
     * @apiParam   {String}         orgNm              上报人所属单位名称
     * @apiParam   {String}         eventAddr          事件发生地址
     * @apiParam   {String}         lgtd               经度
     * @apiParam   {String}         lttd               纬度
     * @apiParam   {String}         mainChem           主要化学污染物
     * @apiParam   {List(String)}   eventCurrentStatusList (数组)事件当前状态(1.创建;2.已确认;3.加入会商;4.已会商|调度中;5.事件结束;8.审核未通过.9.事件取消)
     * @apiParam   {Date}           occuTmBgTm         (开始时间)事件发生时间
     * @apiParam   {Date}           occuTmEdTm         (结束时间)事件发生时间
     * @apiParam   {Date}           discoveryTmBgTm    (开始时间)事件上报时间
     * @apiParam   {Date}           discoveryTmEdTm    (结束时间)事件上报时间
     * @apiParam   {String}         eventDesc          事件描述
     * @apiParam   {String}         eventPreDispo      事件先期处置
     * @apiParam   {List(String)}   sysUserIdList      (数组)系统用户代码
     * @apiParam   {String}         sysUserId          系统用户代码
     * @apiParam   {Date}           createTmBgTm       (开始时间)创建时间
     * @apiParam   {Date}           createTmEdTm       (结束时间)创建时间
     * @apiParam   {Date}           modifyTmBgTm       (开始时间)修改时间
     * @apiParam   {Date}           modifyTmEdTm       (结束时间)修改时间
     * @apiParam   {Date}           tsBgTm             (开始时间)时间戳
     * @apiParam   {Date}           tsEdTm             (结束时间)时间戳
     * @apiSuccess {String}         eventId            应急事件代码
     * @apiSuccess {String}         eventNm            应急事件名称
     * @apiSuccess {String}         eventG             应急事件级别
     * @apiSuccess {String}         eventTp            应急事件类型
     * @apiSuccess {String}         reportTp           事件上报方式(1.自动上报;2.人工上报)
     * @apiSuccess {String}         reportPersonNm     上报人员姓名
     * @apiSuccess {String}         reportPersonTel    上报人员电话
     * @apiSuccess {String}         adCd               事发行政区划代码
     * @apiSuccess {String}         orgNm              上报人所属单位名称
     * @apiSuccess {String}         eventAddr          事件发生地址
     * @apiSuccess {String}         lgtd               经度
     * @apiSuccess {String}         lttd               纬度
     * @apiSuccess {String}         mainChem           主要化学污染物
     * @apiSuccess {String}         eventCurrentStatus 事件当前状态(1.创建;2.已确认;3.加入会商;4.已会商|调度中;5.事件结束;8.审核未通过.9.事件取消)
     * @apiSuccess {Date}           occuTm             事件发生时间
     * @apiSuccess {Date}           discoveryTm        事件上报时间
     * @apiSuccess {String}         eventDesc          事件描述
     * @apiSuccess {String}         eventPreDispo      事件先期处置
     * @apiSuccess {String}         sysUserId          系统用户代码
     * @apiSuccess {Date}           createTm           创建时间
     * @apiSuccess {Date}           modifyTm           修改时间
     * @apiSuccess {Date}           ts                 时间戳
     * @apiSuccessExample 请求成功:
     * HTTP/1.1 200 OK
     * {
     * "result": [{
     * "eventId": "5864626a-71f1-40bd-ad14-c480f4654395",
     * "eventNm": "111111",
     * "eventG": "9",
     * "eventTp": "9",
     * "reportTp": "2",
     * "reportPersonNm": null,
     * "reportPersonTel": null,
     * "adCd": "420800",
     * "orgNm": null,
     * "eventAddr": "邹家窝西南约529米",
     * "lgtd": "112.719727",
     * "lttd": "30.882568",
     * "mainChem": null,
     * "eventCurrentStatus": "2",
     * "occuTm": "2019-01-03 19:13:54.0",
     * "discoveryTm": "2019-01-03 19:13:54.0",
     * "eventDesc": null,
     * "eventPreDispo": null,
     * "sysUserId": null,
     * "createTm": null,
     * "modifyTm": null,
     * "ts": "2019-04-08 14:52:43.0"
     *  }]
     * }
     *
     * @apiSuccessExample 分页请求:
     * request header: Rang={max=50;size=50;field=TS DESC}
     * HTTP/1.1 200 OK
     * {
     * "result": [{
     * "eventId": "5864626a-71f1-40bd-ad14-c480f4654395",
     * "eventNm": "111111",
     * "eventG": "9",
     * "eventTp": "9",
     * "reportTp": "2",
     * "reportPersonNm": null,
     * "reportPersonTel": null,
     * "adCd": "420800",
     * "orgNm": null,
     * "eventAddr": "邹家窝西南约529米",
     * "lgtd": "112.719727",
     * "lttd": "30.882568",
     * "mainChem": null,
     * "eventCurrentStatus": "2",
     * "occuTm": "2019-01-03 19:13:54.0",
     * "discoveryTm": "2019-01-03 19:13:54.0",
     * "eventDesc": null,
     * "eventPreDispo": null,
     * "sysUserId": null,
     * "createTm": null,
     * "modifyTm": null,
     * "ts": "2019-04-08 14:52:43.0"
     *  }],
     * "paging": {
     * "count": 3,
     * "total": 120,
     * "finale": false,
     * "index": 1
     * }
     * }
     * @apiUse header_rang
     * @apiUse exceptions
     */
    @POST
    @Path("list")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response selectList(WremEventBQo filter) {
        PageUtils.startPageFromRang();
        LOGGER.info("根据条件查询 应急事件基本信息表,参数 WremEventBQo:{}", filter);
        return Response.ok(ApiResultBuilder.create(this, wremEventBService.selectList(filter))).build();
    }

    /**
     * @api {put} generate/event/b [C][G]新增数据
     * @apiPrivate
     * @apiDescription [G]新增T_WHHT_WREM_EVENT_B(应急事件基本信息表)数据
     * @apiName (generate)add data
     * @apiGroup WREM_EVENT_B-应急事件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         eventId            【必须】应急事件代码
     * @apiParam   {String}         eventNm            应急事件名称
     * @apiParam   {String}         eventG             应急事件级别
     * @apiParam   {String}         eventTp            应急事件类型
     * @apiParam   {String}         reportTp           事件上报方式(1.自动上报;2.人工上报)
     * @apiParam   {String}         reportPersonNm     上报人员姓名
     * @apiParam   {String}         reportPersonTel    上报人员电话
     * @apiParam   {String}         adCd               事发行政区划代码
     * @apiParam   {String}         orgNm              上报人所属单位名称
     * @apiParam   {String}         eventAddr          事件发生地址
     * @apiParam   {String}         lgtd               经度
     * @apiParam   {String}         lttd               纬度
     * @apiParam   {String}         mainChem           主要化学污染物
     * @apiParam   {String}         eventCurrentStatus 事件当前状态(1.创建;2.已确认;3.加入会商;4.已会商|调度中;5.事件结束;8.审核未通过.9.事件取消)
     * @apiParam   {Date}           occuTm             事件发生时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {Date}           discoveryTm        事件上报时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {String}         eventDesc          事件描述
     * @apiParam   {String}         eventPreDispo      事件先期处置
     * @apiParam   {String}         sysUserId          系统用户代码
     * @apiParam   {Date}           createTm           创建时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {Date}           modifyTm           修改时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {Date}           ts                 时间戳(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccess {Integer}        status             1:新增成功;0:新增失败.
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据,通常包含新增数据的主键值
     * @apiSampleRequest generate/event/b
     * @apiSuccessExample 新增成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":{
     *   "eventId": "5864626a-71f1-40bd-ad14-c480f4654395"
     *      }
     *   }
     * }
     @apiSuccessExample 新增失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":{
     *   "eventId": "5864626a-71f1-40bd-ad14-c480f4654395"
     *      }
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * {
     * "eventId": "5864626a-71f1-40bd-ad14-c480f4654395",
     * "eventNm": "111111",
     * "eventG": "9",
     * "eventTp": "9",
     * "reportTp": "2",
     * "reportPersonNm": null,
     * "reportPersonTel": null,
     * "adCd": "420800",
     * "orgNm": null,
     * "eventAddr": "邹家窝西南约529米",
     * "lgtd": "112.719727",
     * "lttd": "30.882568",
     * "mainChem": null,
     * "eventCurrentStatus": "2",
     * "occuTm": "2019-01-03 19:13:54.0",
     * "discoveryTm": "2019-01-03 19:13:54.0",
     * "eventDesc": null,
     * "eventPreDispo": null,
     * "sysUserId": null,
     * "createTm": null,
     * "modifyTm": null,
     * "ts": "2019-04-08 14:52:43.0"
     * }
     * @apiUse exceptions
     */
    @PUT
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response insert(WremEventB record) {
        LOGGER.info("新增 应急事件基本信息表,参数 WremEventB:{}", record);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.insert(wremEventBService.insertSelective(record),record))).build();
    }

    /**
     * @api {post} generate/event/b/insertBatch [C][G]批量新增数据
     * @apiPrivate
     * @apiDescription [G]批量新增T_WHHT_WREM_EVENT_B(应急事件基本信息表)数据
     * @apiName (generate)addBatch data
     * @apiGroup WREM_EVENT_B-应急事件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         eventId            【必须】应急事件代码
     * @apiParam   {String}         eventNm            应急事件名称
     * @apiParam   {String}         eventG             应急事件级别
     * @apiParam   {String}         eventTp            应急事件类型
     * @apiParam   {String}         reportTp           事件上报方式(1.自动上报;2.人工上报)
     * @apiParam   {String}         reportPersonNm     上报人员姓名
     * @apiParam   {String}         reportPersonTel    上报人员电话
     * @apiParam   {String}         adCd               事发行政区划代码
     * @apiParam   {String}         orgNm              上报人所属单位名称
     * @apiParam   {String}         eventAddr          事件发生地址
     * @apiParam   {String}         lgtd               经度
     * @apiParam   {String}         lttd               纬度
     * @apiParam   {String}         mainChem           主要化学污染物
     * @apiParam   {String}         eventCurrentStatus 事件当前状态(1.创建;2.已确认;3.加入会商;4.已会商|调度中;5.事件结束;8.审核未通过.9.事件取消)
     * @apiParam   {Date}           occuTm             事件发生时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {Date}           discoveryTm        事件上报时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {String}         eventDesc          事件描述
     * @apiParam   {String}         eventPreDispo      事件先期处置
     * @apiParam   {String}         sysUserId          系统用户代码
     * @apiParam   {Date}           createTm           创建时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {Date}           modifyTm           修改时间(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {Date}           ts                 时间戳(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccess {Integer}        status             1:新增成功;0:新增失败.
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据,通常包含新增数据的主键值
     * @apiSampleRequest generate/event/b/insertBatch
     * @apiSuccessExample 新增成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":{
     *   "eventId": "5864626a-71f1-40bd-ad14-c480f4654395"
     *      }
     *   }
     * }
     @apiSuccessExample 新增失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":{
     *   "eventId": "5864626a-71f1-40bd-ad14-c480f4654395"
     *      }
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * [{
     * "eventId": "5864626a-71f1-40bd-ad14-c480f4654395",
     * "eventNm": "111111",
     * "eventG": "9",
     * "eventTp": "9",
     * "reportTp": "2",
     * "reportPersonNm": null,
     * "reportPersonTel": null,
     * "adCd": "420800",
     * "orgNm": null,
     * "eventAddr": "邹家窝西南约529米",
     * "lgtd": "112.719727",
     * "lttd": "30.882568",
     * "mainChem": null,
     * "eventCurrentStatus": "2",
     * "occuTm": "2019-01-03 19:13:54.0",
     * "discoveryTm": "2019-01-03 19:13:54.0",
     * "eventDesc": null,
     * "eventPreDispo": null,
     * "sysUserId": null,
     * "createTm": null,
     * "modifyTm": null,
     * "ts": "2019-04-08 14:52:43.0"
     * }]
     * @apiUse exceptions
     */
    @POST
    @Path("insertBatch")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response insertBatch(List<WremEventB> recordList) {
        LOGGER.info("批量新增 应急事件基本信息表,参数 WremEventB:[]", recordList);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.insert(wremEventBService.insertBatch(recordList),recordList))).build();
    }

    /**
     * @api {put} generate/event/b/{eventId}/update [U][G]根据主键修改
     * @apiPrivate
     * @apiDescription [G]根据主键修改T_WHHT_WREM_EVENT_B(应急事件基本信息表)数据
     * @apiName (generate)update data
     * @apiGroup WREM_EVENT_B-应急事件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         eventId            【必须】应急事件代码
     * @apiParam   {String}         eventNm            应急事件名称
     * @apiParam   {String}         eventG             应急事件级别
     * @apiParam   {String}         eventTp            应急事件类型
     * @apiParam   {String}         reportTp           事件上报方式(1.自动上报;2.人工上报)
     * @apiParam   {String}         reportPersonNm     上报人员姓名
     * @apiParam   {String}         reportPersonTel    上报人员电话
     * @apiParam   {String}         adCd               事发行政区划代码
     * @apiParam   {String}         orgNm              上报人所属单位名称
     * @apiParam   {String}         eventAddr          事件发生地址
     * @apiParam   {String}         lgtd               经度
     * @apiParam   {String}         lttd               纬度
     * @apiParam   {String}         mainChem           主要化学污染物
     * @apiParam   {String}         eventCurrentStatus 事件当前状态(1.创建;2.已确认;3.加入会商;4.已会商|调度中;5.事件结束;8.审核未通过.9.事件取消)
     * @apiParam   {Date}           occuTm             事件发生时间
     * @apiParam   {Date}           discoveryTm        事件上报时间
     * @apiParam   {String}         eventDesc          事件描述
     * @apiParam   {String}         eventPreDispo      事件先期处置
     * @apiParam   {String}         sysUserId          系统用户代码
     * @apiParam   {Date}           createTm           创建时间
     * @apiParam   {Date}           modifyTm           修改时间
     * @apiParam   {Date}           ts                 时间戳
     * @apiSuccess {Integer}        status             1:修改成功;0:要修改的数据不存在(可能已被删除)
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSampleRequest generate/event/b/5864626a-71f1-40bd-ad14-c480f4654395/update
     * @apiSuccessExample 修改成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 修改失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * {
     * "eventId": "5864626a-71f1-40bd-ad14-c480f4654395",
     * "eventNm": "111111",
     * "eventG": "9",
     * "eventTp": "9",
     * "reportTp": "2",
     * "reportPersonNm": null,
     * "reportPersonTel": null,
     * "adCd": "420800",
     * "orgNm": null,
     * "eventAddr": "邹家窝西南约529米",
     * "lgtd": "112.719727",
     * "lttd": "30.882568",
     * "mainChem": null,
     * "eventCurrentStatus": "2",
     * "occuTm": "2019-01-03 19:13:54.0",
     * "discoveryTm": "2019-01-03 19:13:54.0",
     * "eventDesc": null,
     * "eventPreDispo": null,
     * "sysUserId": null,
     * "createTm": null,
     * "modifyTm": null,
     * "ts": "2019-04-08 14:52:43.0"
     * }
     * @apiUse exceptions
     */
    @PUT
    @Path("{eventId}/update")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response update(@PathParam("eventId") String eventId, WremEventB record) {
        record.setEventId(eventId);
        LOGGER.info("根据主键修改 应急事件基本信息表,参数 WremEventB:{}", record);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.update(wremEventBService.updateByPrimaryKey(record)))).build();
    }

    /**
     * @api {put} generate/event/b/{eventId}/update-selective [U][G]根据主键修改(只修改非null字段)
     * @apiPrivate
     * @apiDescription [G]根据主键修改T_WHHT_WREM_EVENT_B(应急事件基本信息表)数据,只修改非null字段
     * @apiName (generate)update selected data
     * @apiGroup WREM_EVENT_B-应急事件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         eventId            应急事件代码
     * @apiParam   {String}         eventNm            应急事件名称
     * @apiParam   {String}         eventG             应急事件级别
     * @apiParam   {String}         eventTp            应急事件类型
     * @apiParam   {String}         reportTp           事件上报方式(1.自动上报;2.人工上报)
     * @apiParam   {String}         reportPersonNm     上报人员姓名
     * @apiParam   {String}         reportPersonTel    上报人员电话
     * @apiParam   {String}         adCd               事发行政区划代码
     * @apiParam   {String}         orgNm              上报人所属单位名称
     * @apiParam   {String}         eventAddr          事件发生地址
     * @apiParam   {String}         lgtd               经度
     * @apiParam   {String}         lttd               纬度
     * @apiParam   {String}         mainChem           主要化学污染物
     * @apiParam   {String}         eventCurrentStatus 事件当前状态(1.创建;2.已确认;3.加入会商;4.已会商|调度中;5.事件结束;8.审核未通过.9.事件取消)
     * @apiParam   {Date}           occuTm             事件发生时间
     * @apiParam   {Date}           discoveryTm        事件上报时间
     * @apiParam   {String}         eventDesc          事件描述
     * @apiParam   {String}         eventPreDispo      事件先期处置
     * @apiParam   {String}         sysUserId          系统用户代码
     * @apiParam   {Date}           createTm           创建时间
     * @apiParam   {Date}           modifyTm           修改时间
     * @apiParam   {Date}           ts                 时间戳
     * @apiSuccess {Integer}        status             1:修改成功;0:要修改的数据不存在(可能已被删除)
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSampleRequest generate/event/b/5864626a-71f1-40bd-ad14-c480f4654395/update-selective
     * * @apiSuccessExample 修改成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 修改失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * {
     * "eventId": "5864626a-71f1-40bd-ad14-c480f4654395",
     * "eventNm": "111111",
     * "eventG": "9",
     * "eventTp": "9",
     * "reportTp": "2",
     * "reportPersonNm": null,
     * "reportPersonTel": null,
     * "adCd": "420800",
     * "orgNm": null,
     * "eventAddr": "邹家窝西南约529米",
     * "lgtd": "112.719727",
     * "lttd": "30.882568",
     * "mainChem": null,
     * "eventCurrentStatus": "2",
     * "occuTm": "2019-01-03 19:13:54.0",
     * "discoveryTm": "2019-01-03 19:13:54.0",
     * "eventDesc": null,
     * "eventPreDispo": null,
     * "sysUserId": null,
     * "createTm": null,
     * "modifyTm": null,
     * "ts": "2019-04-08 14:52:43.0"
     * }
     * @apiUse exceptions
     */
    @PUT
    @Path("{eventId}/update-selective")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response updateSelective(@PathParam("eventId") String eventId, WremEventB record) {
        record.setEventId(eventId);
        LOGGER.info("根据主键修改(只修改非null字段) 应急事件基本信息表,参数 WremEventB:{}", record);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.update(wremEventBService.updateByPrimaryKeySelective(record)))).build();
    }

    /**
     * @api {post} generate/event/b/updateBatch [U][G]根据主键批量修改(只修改非null字段)
     * @apiPrivate
     * @apiDescription [G]根据批量主键修改T_WHHT_WREM_EVENT_B(应急事件基本信息表)数据,只修改非null字段
     * @apiName (generate)updateBatch selected data
     * @apiGroup WREM_EVENT_B-应急事件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         eventId            应急事件代码
     * @apiParam   {String}         eventNm            应急事件名称
     * @apiParam   {String}         eventG             应急事件级别
     * @apiParam   {String}         eventTp            应急事件类型
     * @apiParam   {String}         reportTp           事件上报方式(1.自动上报;2.人工上报)
     * @apiParam   {String}         reportPersonNm     上报人员姓名
     * @apiParam   {String}         reportPersonTel    上报人员电话
     * @apiParam   {String}         adCd               事发行政区划代码
     * @apiParam   {String}         orgNm              上报人所属单位名称
     * @apiParam   {String}         eventAddr          事件发生地址
     * @apiParam   {String}         lgtd               经度
     * @apiParam   {String}         lttd               纬度
     * @apiParam   {String}         mainChem           主要化学污染物
     * @apiParam   {String}         eventCurrentStatus 事件当前状态(1.创建;2.已确认;3.加入会商;4.已会商|调度中;5.事件结束;8.审核未通过.9.事件取消)
     * @apiParam   {Date}           occuTm             事件发生时间
     * @apiParam   {Date}           discoveryTm        事件上报时间
     * @apiParam   {String}         eventDesc          事件描述
     * @apiParam   {String}         eventPreDispo      事件先期处置
     * @apiParam   {String}         sysUserId          系统用户代码
     * @apiParam   {Date}           createTm           创建时间
     * @apiParam   {Date}           modifyTm           修改时间
     * @apiParam   {Date}           ts                 时间戳
     * @apiSuccess {Integer}        status             1:修改成功;0:要修改的数据不存在(可能已被删除)
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSampleRequest  generate/event/b/updateBatch
     * * @apiSuccessExample 修改成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 修改失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * [{
     * "eventId": "5864626a-71f1-40bd-ad14-c480f4654395",
     * "eventNm": "111111",
     * "eventG": "9",
     * "eventTp": "9",
     * "reportTp": "2",
     * "reportPersonNm": null,
     * "reportPersonTel": null,
     * "adCd": "420800",
     * "orgNm": null,
     * "eventAddr": "邹家窝西南约529米",
     * "lgtd": "112.719727",
     * "lttd": "30.882568",
     * "mainChem": null,
     * "eventCurrentStatus": "2",
     * "occuTm": "2019-01-03 19:13:54.0",
     * "discoveryTm": "2019-01-03 19:13:54.0",
     * "eventDesc": null,
     * "eventPreDispo": null,
     * "sysUserId": null,
     * "createTm": null,
     * "modifyTm": null,
     * "ts": "2019-04-08 14:52:43.0"
     * }]
     * @apiUse exceptions
     */
    @POST
    @Path("updateBatch")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response updateBatch(List<WremEventB> record) {
        LOGGER.info("根据主键批量修改(只修改非null字段) 应急事件基本信息表,参数 WremEventB:{}", record);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.update(wremEventBService.updateBatch(record)))).build();
    }

    /**
     * @api {delete} generate/event/b/{eventId} [D][G]根据主键删除
     * @apiPrivate
     * @apiDescription [G]根据主键删除T_WHHT_WREM_EVENT_B(应急事件基本信息表)数据
     * @apiName (generate)delete by primary key
     * @apiGroup WREM_EVENT_B-应急事件基本信息表
     * @apiVersion 1.0.0
     * @apiSampleRequest generate/event/b/5864626a-71f1-40bd-ad14-c480f4654395
     * @apiParam   {String}         eventId            【必须】应急事件代码
     * @apiSuccess {Integer}        status             1:删除成功;0:要删除的数据不存在(可能已被删除).
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSuccessExample 删除成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 删除失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiUse exceptions
     */
    @DELETE
    @Path("{eventId}")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response delete(@PathParam("eventId") String eventId) {
        LOGGER.info("根据主键删除 应急事件基本信息表,参数 eventId:{}", eventId);
        Integer rows = wremEventBService.deleteByPrimaryKey(eventId);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.delete(rows))).build();
    }

    /**
     * @api {delete} generate/event/b/by-filter [D][G]根据条件删除
     * @apiPrivate
     * @apiDescription [G]根据条件删除T_WHHT_WREM_EVENT_B(应急事件基本信息表)数据
     * @apiName (generate)delete by filter
     * @apiGroup WREM_EVENT_B-应急事件基本信息表
     * @apiVersion 1.0.0
     * @apiSampleRequest generate/event/b/by-filter
     * @apiParam   {List(String)}   eventIdList        (数组)应急事件代码
     * @apiParam   {String}         eventId            应急事件代码
     * @apiParam   {String}         eventNm            应急事件名称
     * @apiParam   {List(String)}   eventGList         (数组)应急事件级别
     * @apiParam   {List(String)}   eventTpList        (数组)应急事件类型
     * @apiParam   {List(String)}   reportTpList       (数组)事件上报方式(1.自动上报;2.人工上报)
     * @apiParam   {String}         reportPersonNm     上报人员姓名
     * @apiParam   {String}         reportPersonTel    上报人员电话
     * @apiParam   {List(String)}   adCdList           (数组)事发行政区划代码
     * @apiParam   {String}         adCd               事发行政区划代码
     * @apiParam   {String}         orgNm              上报人所属单位名称
     * @apiParam   {String}         eventAddr          事件发生地址
     * @apiParam   {String}         lgtd               经度
     * @apiParam   {String}         lttd               纬度
     * @apiParam   {String}         mainChem           主要化学污染物
     * @apiParam   {List(String)}   eventCurrentStatusList (数组)事件当前状态(1.创建;2.已确认;3.加入会商;4.已会商|调度中;5.事件结束;8.审核未通过.9.事件取消)
     * @apiParam   {Date}           occuTmBgTm         (开始时间)事件发生时间
     * @apiParam   {Date}           occuTmEdTm         (结束时间)事件发生时间
     * @apiParam   {Date}           discoveryTmBgTm    (开始时间)事件上报时间
     * @apiParam   {Date}           discoveryTmEdTm    (结束时间)事件上报时间
     * @apiParam   {String}         eventDesc          事件描述
     * @apiParam   {String}         eventPreDispo      事件先期处置
     * @apiParam   {List(String)}   sysUserIdList      (数组)系统用户代码
     * @apiParam   {String}         sysUserId          系统用户代码
     * @apiParam   {Date}           createTmBgTm       (开始时间)创建时间
     * @apiParam   {Date}           createTmEdTm       (结束时间)创建时间
     * @apiParam   {Date}           modifyTmBgTm       (开始时间)修改时间
     * @apiParam   {Date}           modifyTmEdTm       (结束时间)修改时间
     * @apiParam   {Date}           tsBgTm             (开始时间)时间戳
     * @apiParam   {Date}           tsEdTm             (结束时间)时间戳
     * @apiSuccess {Integer}        status             通常1或者>1:删除成功;0:没有符合条件的数据.
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSuccessExample 删除成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 删除失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiUse exceptions
     */
    @DELETE
    @Path("by-filter")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response deleteByFilter(WremEventBQo filter) {
        LOGGER.info("根据条件删除 应急事件基本信息表,参数 WremEventBQo:{}", filter);
        Integer rows = wremEventBService.deleteByFilter(filter);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.delete(rows))).build();
    }
}
